<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .active {
            color: red;
        }
    </style>
</head>
<body>
    <div id="app">
        <!-- 
            绑定方法: 对象语法,class后面跟的是一个对象
                用法一: 直接通过{}绑定一个类
                <h2 :class="{'active': isActive}">Hello World</h2>

                用法二: 也可以通过判断,传入多个值
                <h2 :class="{'active': isActive,'line': isLine}">Hello World</h2>

                用法三: 和普通的类同时存在,并不冲突
                注: 如果isActive和isLine都为true,那么会有title/active/line三个类
                <h2 class="title" :class="{'active': isActive, 'line': isLine}">Hello World</h2>

                用法四: 如果过于复杂,可以放在一个methods或者computed中
                注: classes是一个计算属性
                <h2 class="title" :class="classes">Hello World</h2>
         -->    
        <!-- class后可跟一个对象,通过属性后面设置的boolean值来决定该属性是否生效 -->
        <!-- <h2 v-bind:class="{类名1: boolean, 类名2: boolean}">{{message}}</h2> -->
        <!-- 可以同时使用两个class属性,相互之间会合并而不会进行覆盖 -->
        <h2 class="title" v-bind:class="{active: isActive, line: isLine}">{{message}}</h2>

         <!-- 如果觉得class后太长了,可以将其设置到methods或计算属性中 -->
         <h2 class="title" v-bind:class="getClasses()">{{message}}</h2>

        <button v-on:click="changeColor">点击</button>
    </div>

    <script src="../js/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                message: '苏州大学',
                active: 'active',
                isActive: true,
                isLine: true
            },
            methods: {
                changeColor: function(){
                    this.isActive = !this.isActive
                },
                getClasses: function(){
                    return {active: this.isActive, line: this.isLine}
                }
            }
        })
    </script>
</body>
</html>